﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TCC_Hotel.Serviços.OtherServices;
using TCC_Hotel.Serviços.BDServices;

namespace TCC_Hotel.Apresentacao.Login
{
    public partial class TrocarSenha : System.Web.UI.Page
    {
        LoginService servico = new LoginService();

        /// <summary>
        /// Carregamento da pagina
        /// </summary>    
        protected void Page_Load(object sender, EventArgs e)
        {
            //Recupera o usuario corrente
            string usuario = Request.ServerVariables["AUTH_USER"].ToString();
            lblUsuario.Text = usuario;
        }

        /// <summary>
        /// Evento de click do botão salvar
        /// </summary>     
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            //Recupera o usuario corrente
            string usuario = Request.ServerVariables["AUTH_USER"].ToString();

             ComumServices comum = new ComumServices();

            //preenche a lista obrigatoria para verificar se todos os campos obrigatorios fora preenchidos
            List<string> listaObrigatoria = new List<string>() 
            { 
                txtNovaSenha.Text.Trim(),
                txtRepitaSenha.Text.Trim(),
                txtSenhaAtual.Text.Trim()            
            };

            //Verifica se algum campo obrigatório nao foi preenchido
            if (!comum.ValidaCamposObrigatorios(listaObrigatoria))
            {
                MensagemJS("ERRO: Campo(s) obrigatório(s) em branco");
                return;
            }
            

            //verifica se as senhas digitadas são iguais
            if (txtNovaSenha.Text != txtRepitaSenha.Text)
            {
                MensagemJS("ERRO: Senhas digitadas não são iguais");
                return;
            }

            //verifica senha atual do usuario
            if (!servico.VerificarLogin(usuario, txtSenhaAtual.Text))
            {
                MensagemJS("ERRO: Senha atual incorreta");
                return;
            }

            //chama o serviço que insere o funcionário no banco de dados
            if (servico.TrocarSenhaUsuario(usuario, txtNovaSenha.Text))
            {
                MensagemJS("Senha alterada com sucesso!");
            }
            else
            {
                MensagemJS("ERRO: Ocorreu um erro e não foi possivel alterar a senha");
                return;
            }
        }

        /// <summary>
        /// Lança um popup em javaScript com alguma mensagem
        /// </summary>
        /// <param name="msg">Mensagem do popup</param>
        public void MensagemJS(string msg)
        {
            //Formata um alert para o usuário
            Page.ClientScript.RegisterStartupScript(

                     this.GetType(),

                     "Mensagem",

                     "$(window).load(function(){alert('" + msg + "')});",

                     true);

        }
    }
}